<?php

class Plugin_MyPluginController extends Zend_Controller_Plugin_Abstract
{
 /**
     * preDispatch() Permet de charger des fichiers en fonction du controlleur et de l'action
     *
     * @param $request Zend_Controller_Request_Abstract           
     * @return void
     *
     */
    private $modulename;
    private $controllername;
    private $actioname;
    
    public function preDispatch (Zend_Controller_Request_Abstract $request)
    {
        // the following functions will tell you where the visitor is heading
        $this->modulename = $request->getModuleName();
        $this->controllername = $request->getControllerName();
        $this->actioname = $request->getActionName();
        
        /******************** On charge le javascript  et le css propre au controlleur et a l'action **************************/
        
        //On vérifie que ce n'est pas une requete AJAX
        if(!$request->isXmlHttpRequest())
        {
            // On récupère la view
            $view = Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('view');
            
         								   /*************** JS ******************/
            
            /******************** On charge le javascript Commun **************************/
            
            $commonpath = "js/dev/common/";
            
            if (APPLICATION_ENV == "production") {
                $view->headScript()
                ->appendScript('var BASE_URL = "' . $view->baseUrl() . '/";')
                ->appendFile($view->baseUrl("min/?g=" . $this->controllername . "_" . $this->actioname));
                $view->headLink(array('rel' => 'icon', 'type' => 'image/png', 'href' => $view->baseUrl('favicon.png')))
                ->appendStylesheet($view->baseUrl("min/?g=css_" . $this->controllername . "_" . $this->actioname));
            }
            else 
            {
            	$view->headScript()
            	->appendScript('var BASE_URL = "' . $view->baseUrl() . '/";')
            	->appendFile($view->baseUrl($commonpath.'jquery-1.8.2.min.js'))
            	->appendFile($view->baseUrl($commonpath.'jquery-ui-1.9.2.custom.min.js'))
            	->appendFile($view->baseUrl($commonpath.'jquery.dataTables.min.js'))
            	->appendFile($view->baseUrl($commonpath.'dataTables.fnReloadAjax.js'))
            	->appendFile($view->baseUrl($commonpath.'bootstrap.min.js'))
            	->appendFile($view->baseUrl($commonpath.'common.js'));
            	
            	// On définit le chemin relatif du dossier correspondant au controlleur
            	$relativecontrolleurpath = "js/dev/" . $this->controllername . "/";
            	
            	// On définit le chemin local du dossier du controller
            	$localcontrolleurpath = PUBLIC_PATH . '/' . $relativecontrolleurpath;
            	
            	// On vérifie si le dossier existe;
            	if (is_dir($localcontrolleurpath) == true) {
            		 // On ouvre le dossier
            		$dir = opendir($localcontrolleurpath);
            	
            		// Tant qu'il y a des fichier
            		while ($file = readdir($dir)) {
            			if ($file != '.' && $file != '..' && ! is_dir($localcontrolleurpath . $file)) {
            	   		 	$view->headScript()->appendFile($view->baseUrl($relativecontrolleurpath . $file));
            			}
            		}
            	} 
            	else {
            	//             	echo "le dossier n'existe pas";
            	}
            	
            	
            	// On définit le chemin relatif du dossier correspondant à l'action
            	$relativeactionpath = "js/dev/" . $this->controllername . "/" . $this->actioname . "/";
            	
            	// On définit le chemin local du dossier de l'action
            	$localactionpath = PUBLIC_PATH . '/' . $relativeactionpath;
            	
            	// On vérifie si le dossier existe;
            	if (is_dir($localactionpath) == true) {
            		 // On ouvre le dossier
            		$dir = opendir($localactionpath);
            	
            		// Tant qu'il y a des fichier
            		while ($file = readdir($dir)) {
            		if ($file != '.' && $file != '..' && ! is_dir($localactionpath . $file)) {
            			$view->headScript()->appendFile($view->baseUrl($relativeactionpath . $file));
            		}
            		}
            	}
            	else {
            		//  echo "le dossier n'existe pas";
            	}
            	
            	
            	$view->headLink(array('rel' => 'icon', 'type' => 'image/png', 'href' => $view->baseUrl('favicon.png')))
            	->appendStylesheet($view->baseUrl('css/reset.css'))
            	->appendStylesheet($view->baseUrl('css/jquery-ui-1.9.2.custom.min.css'))
            	->appendStylesheet($view->baseUrl('css/bootstrap.min.css'))
            	->appendStylesheet($view->baseUrl('css/font-awesome.min.css'))
            	->appendStylesheet($view->baseUrl('css/base.css'))
            	->appendStylesheet($view->baseUrl('css/formulaire.css'));
            	
            	if($this->controllername == "admin")
            	{
            		$view->headLink()->appendStylesheet($view->baseUrl('css/admin/layoutadmin.css'))
            		->appendStylesheet($view->baseUrl('css/admin/DT_bootstrap.css'))
            		->appendStylesheet($view->baseUrl('css/admin/table.css'))
            		->appendStylesheet($view->baseUrl('css/admin/colorpicker.css'));
            	}
            	else
            	{
            		$view->headLink()->appendStylesheet($view->baseUrl('css/index/layout.css'));
            	}
            	
            	$view->headLink()->appendStylesheet($view->baseUrl("css/" . $this->controllername . "/" . $this->actioname . "/" .$this->actioname . ".css"));
            }
        }
        
    }
    
}

?>